package migration

import (
	"awesomeProject/internal/model"
	"gorm.io/gorm"
	"go.uber.org/zap"
)

// AutoMigrate 自动迁移数据库表结构
func AutoMigrate(db *gorm.DB) error {
	zap.L().Info("Starting database migration...")

	// 自动迁移所有模型
	err := db.AutoMigrate(
		&model.User{},
		&model.Category{},
		&model.Post{},
		&model.Comment{},
	)

	if err != nil {
		zap.L().Error("Failed to migrate database", zap.Error(err))
		return err
	}

	zap.L().Info("Database migration completed successfully")
	return nil
}

// CreateDefaultData 创建默认数据
func CreateDefaultData(db *gorm.DB) error {
	zap.L().Info("Creating default data...")

	// 不再创建默认分类，由AI动态管理分类
	// 分类将根据文章内容由AI自动创建和分配

	zap.L().Info("Default data creation completed (AI-managed categories)")
	return nil
}

// InitDatabase 初始化数据库（迁移+默认数据）
func InitDatabase(db *gorm.DB) error {
	// 执行迁移
	if err := AutoMigrate(db); err != nil {
		return err
	}

	// 创建默认数据
	if err := CreateDefaultData(db); err != nil {
		return err
	}

	return nil
}